## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.0      ✔ purrr   0.3.5 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::between()   masks data.table::between()
## ✖ dplyr::filter()    masks stats::filter()
## ✖ dplyr::first()     masks data.table::first()
## ✖ dplyr::lag()       masks stats::lag()
## ✖ dplyr::last()      masks data.table::last()
## ✖ purrr::transpose() masks data.table::transpose()
## 
## Please cite as: 
## 
## 
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## 
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer 
## 
## 
## 
## Attaching package: 'gridExtra'
## 
## 
## The following object is masked from 'package:dplyr':
## 
##     combine

Participant Information

Here, we examine participant demographics, such as their age and gender, in addition to information about their work industry and experience. Overall, our sample is highly skewed in terms of gender. A representative average participant would be a man who works in a relatively large technology company with some years of experience.

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

## Selecting by ct

Covariate checks between conditions

ggplot(pt_info, aes(x = age))+
  geom_histogram(bins = 30, aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  labs(title = "Distribution of Participant Age",
       subtitle = "Age was relatively similar across conditions.",
       x = "Age",
       y = "Count")+
  facet_grid(Condition ~ .)+
  theme(strip.text.y = element_text(angle = 0))

pt_info %>% 
  group_by(Condition) %>% 
  summarise(avg_age = mean(age))
## # A tibble: 4 × 2
##   Condition            avg_age
##   <chr>                  <dbl>
## 1 Man_Nontraditional      38.7
## 2 Man_Traditional         39.3
## 3 Woman_Nontraditional    41.4
## 4 Woman_Traditional       38.9
ggplot(pt_info, aes(x = as.factor(gender)))+
  geom_bar(stat = "count", position= "dodge", aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  scale_x_discrete(limits = c("Man", "Woman", "Non-binary / third gender", "Prefer not to say"))+
  labs(title = "Distribution of Participant Gender and Condition",
       subtitle = "Gender was relatively similar across conditions.",
       x = "Reported Gender",
       y = "Count")

industry_dist <- ggplot(industry_df %>% top_n(10) , aes(x = factor(industry, levels = industry), y  = ct))+
  geom_bar(stat = "identity", aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
  labs(title = "Distribution of Participant Industry", 
       subtitle = paste0(
         round(subset(industry_df, industry == "Technology")$ct / nrow(pt_info), 2) * 100,
         "% of participants work in Tehcnology"
       ),
       x = "Industry Area",
       y = "Count")
## Selecting by ct
ggplot(pt_info, aes(x = factor(str_replace_all(company_size, " employees", ""),
                               levels = c("Less than 50",
                                          "50-100",
                                          "100-500",
                                          "500-1,000",
                                          "1,000+"))))+
  geom_bar(stat = "count", position = "dodge", aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  labs(title = "Distribution of Participant Company Size",
       subtitle = "Number of employees",
       x = "Company Size",
       y = "Count")

chisq.test(pt_info$company_size, pt_info$Condition)
## 
##  Pearson's Chi-squared test
## 
## data:  pt_info$company_size and pt_info$Condition
## X-squared = 7.8454, df = 12, p-value = 0.7971
ggplot(pt_info, aes(x = factor(experience,
                               levels = c("Less than 1 year",
                                          "1-2 years",
                                          "3-5 years",
                                          "5-10 years",
                                          "10+ years"))))+
  geom_bar(stat = "count", aes(fill = Condition), position = "dodge", alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  labs(title = "Distribution of Participant Work Experience",
       subtitle = "",
       x = "Years of Experience",
       y = "Count")

chisq.test(pt_info$experience, pt_info$Condition)
## 
##  Pearson's Chi-squared test
## 
## data:  pt_info$experience and pt_info$Condition
## X-squared = 6.2959, df = 12, p-value = 0.9004
ggplot(pt_info, aes(x = risk))+
  geom_bar(stat = "count", aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  labs(title = "Distribution of Participant Risk Aversion",
       x = "Average Response to Risk Items",
       y = "Count")+
  facet_grid(Condition ~.)+
  theme(strip.text.y = element_text(angle = 0))

pt_info_dt <- data.table(pt_info)

# check for gender treatment
pt_info_dt[, applicant_gender_bin := ifelse(Condition == "Man_Traditional" | Condition == "Man_Nontraditional", 
                                            0, 1)]
null_gender_mod <- pt_info_dt[, lm(applicant_gender_bin ~ 1)]
full_gender_mod <- pt_info_dt[ , lm(applicant_gender_bin ~ 1 + 
                                      age + 
                                      gender + 
                                      company_size + 
                                      factor(experience,
                                             levels = c("Less than 1 year",
                                                        "1-2 years",
                                                        "3-5 years",
                                                        "5-10 years",
                                                        "10+ years"))+
                                      factor(str_replace_all(company_size, " employees", ""),
                                             levels = c("Less than 50",
                                                        "50-100",
                                                        "100-500",
                                                        "500-1,000",
                                                        "1,000+"))
)]
anova(null_gender_mod, full_gender_mod)
## Analysis of Variance Table
## 
## Model 1: applicant_gender_bin ~ 1
## Model 2: applicant_gender_bin ~ 1 + age + gender + company_size + factor(experience, 
##     levels = c("Less than 1 year", "1-2 years", "3-5 years", 
##         "5-10 years", "10+ years")) + factor(str_replace_all(company_size, 
##     " employees", ""), levels = c("Less than 50", "50-100", "100-500", 
##     "500-1,000", "1,000+"))
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    299 74.997                          
## 2    287 71.967 12    3.0301 1.007 0.4424
# check for education treatment
pt_info_dt[, applicant_education_bin := ifelse(Condition == "Man_Traditional" | Condition == "Woman_Traditional", 
                                            0, 1)]
null_education_mod <- pt_info_dt[, lm(applicant_education_bin ~ 1)]
full_education_mod <- pt_info_dt[, lm(applicant_education_bin ~ 1 + 
                                      age + 
                                      gender + 
                                      company_size + 
                                      factor(experience,
                                             levels = c("Less than 1 year",
                                                        "1-2 years",
                                                        "3-5 years",
                                                        "5-10 years",
                                                        "10+ years"))+
                                      factor(str_replace_all(company_size, " employees", ""),
                                             levels = c("Less than 50",
                                                        "50-100",
                                                        "100-500",
                                                        "500-1,000",
                                                        "1,000+"))
)]
anova(null_education_mod, full_education_mod)
## Analysis of Variance Table
## 
## Model 1: applicant_education_bin ~ 1
## Model 2: applicant_education_bin ~ 1 + age + gender + company_size + factor(experience, 
##     levels = c("Less than 1 year", "1-2 years", "3-5 years", 
##         "5-10 years", "10+ years")) + factor(str_replace_all(company_size, 
##     " employees", ""), levels = c("Less than 50", "50-100", "100-500", 
##     "500-1,000", "1,000+"))
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    299 75.000                           
## 2    287 73.551 12    1.4489 0.4711 0.9306
# check for interaction treatment
pt_info_dt[, applicant_interaction_bin := ifelse(Condition == "Woman_Nontraditional", 
                                            1, 0)]
null_interaction_mod <- pt_info_dt[, lm(applicant_interaction_bin ~ 1)]
full_interaction_mod <- pt_info_dt[, lm(applicant_interaction_bin ~ 1 + 
                                      age + 
                                      gender + 
                                      company_size + 
                                      factor(experience,
                                             levels = c("Less than 1 year",
                                                        "1-2 years",
                                                        "3-5 years",
                                                        "5-10 years",
                                                        "10+ years"))+
                                      factor(str_replace_all(company_size, " employees", ""),
                                             levels = c("Less than 50",
                                                        "50-100",
                                                        "100-500",
                                                        "500-1,000",
                                                        "1,000+"))
)]
anova(null_interaction_mod, full_interaction_mod)
## Analysis of Variance Table
## 
## Model 1: applicant_interaction_bin ~ 1
## Model 2: applicant_interaction_bin ~ 1 + age + gender + company_size + 
##     factor(experience, levels = c("Less than 1 year", "1-2 years", 
##         "3-5 years", "5-10 years", "10+ years")) + factor(str_replace_all(company_size, 
##     " employees", ""), levels = c("Less than 50", "50-100", "100-500", 
##     "500-1,000", "1,000+"))
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    299 56.250                           
## 2    287 52.968 12     3.282 1.4819   0.13

Summary Stats

Here, we examine some basic information about how ratings for different applicants varied.

color_scheme <- c(w_t, w_nt, m_nt, m_t)

average_ratings <- analysis %>% 
  group_by(Condition) %>% 
  summarise(avg_rating = mean(rating),
            standard_dev = sd(rating),
            max = avg_rating+ standard_dev,
            min = avg_rating - standard_dev,
            n = n())
average_ratings
## # A tibble: 4 × 6
##   Condition            avg_rating standard_dev   max   min     n
##   <fct>                     <dbl>        <dbl> <dbl> <dbl> <int>
## 1 Man_Traditional            7.60         1.47  9.07  6.14   243
## 2 Man_Nontraditional         7.18         1.99  9.17  5.19   258
## 3 Woman_Nontraditional       7.21         1.79  9.01  5.42   242
## 4 Woman_Traditional          7.93         1.51  9.44  6.42   202
gender_ratings <- analysis %>% 
  group_by(applicant_gender) %>% 
  summarise(avg_rating = mean(rating),
            standard_dev = sd(rating))
gender_ratings
## # A tibble: 2 × 3
##   applicant_gender avg_rating standard_dev
##   <fct>                 <dbl>        <dbl>
## 1 man                    7.39         1.77
## 2 woman                  7.54         1.71
education_ratings <- analysis %>% 
  group_by(applicant_education) %>% 
  summarise(avg_rating = mean(rating),
            standard_dev = sd(rating))
education_ratings
## # A tibble: 2 × 3
##   applicant_education avg_rating standard_dev
##   <fct>                    <dbl>        <dbl>
## 1 trad                      7.75         1.49
## 2 nontrad                   7.19         1.90
ggplot(analysis, aes(x = rating))+
  geom_density(stat = "count",aes(fill = Condition), alpha = 0.8)+
  scale_fill_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$rating), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$rating), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$rating), color = w_nt, linewidth = 1.25)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$rating), color = m_nt)+
  geom_vline(xintercept = 5, color = lightgray)+
  labs(title = "Distribution of Participant Ratings by Condition",
       #       subtitle = "Vertical lines indicates average rating",
       x = "Rating",
       y = "Count")

ggplot(analysis, aes(x = rating))+
  geom_bar(stat = "count", aes(fill = Condition))+
  scale_fill_manual(values = color_scheme)+
  facet_grid(Condition ~ .)+
  labs(title = "Rating Distributions by Condition",
       x = "Rating",
       y = "Count")+
  theme(strip.text.y = element_text(angle = 0),
        legend.position = "none")

#m_t
ggplot(subset(analysis, Condition == 'Man_Traditional'), aes(x = rating))+
  geom_bar(fill = m_t)+
  labs(title = "Distributions of Resume Ratings: Man, Traditional",
       x = "Rating",
       y = "Count")+
  geom_vline(xintercept = mean(subset(analysis, Condition == 'Man_Traditional')$rating), color = darkgray)+
  theme(strip.text.y = element_text(angle = 0),
        legend.position = "none")

#w_t
ggplot(subset(analysis, Condition == 'Woman_Traditional'), aes(x = rating))+
  geom_bar(fill = w_t)+
  labs(title = "Distributions of Resume Ratings: Woman, Traditional",
       x = "Rating",
       y = "Count")+
  geom_vline(xintercept = mean(subset(analysis, Condition == 'Woman_Traditional')$rating), color = darkgray)+
  theme(strip.text.y = element_text(angle = 0),
        legend.position = "none")

#m_nt
ggplot(subset(analysis, Condition == 'Man_Traditional'), aes(x = rating))+
  geom_bar(fill = m_nt)+
  labs(title = "Distributions of Resume Ratings: Man, Non-Traditional",
       x = "Rating",
       y = "Count")+
  geom_vline(xintercept = mean(subset(analysis, Condition == 'Man_Traditional')$rating), color = darkgray)+
  theme(strip.text.y = element_text(angle = 0),
        legend.position = "none")

#w_nt
ggplot(subset(analysis, Condition == 'Woman_Traditional'), aes(x = rating))+
  geom_bar(fill = w_nt)+
  labs(title = "Distributions of Resume Ratings: Woman, Non-Traditional",
       x = "Rating",
       y = "Count")+
  geom_vline(xintercept = mean(subset(analysis, Condition == 'Woman_Traditional')$rating), color = darkgray)+
  theme(strip.text.y = element_text(angle = 0),
        legend.position = "none")

ggplot(analysis, aes(x = rating, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$rating), color = w_t, linewidth = 1.25)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$rating), color = m_t, linewidth = 1.25)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$rating), color = w_nt, linewidth = 1.25)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$rating), color = m_nt, linewidth = 1.25, alpha = 0.5)+
  geom_hline(yintercept = 5, color = lightgray, linewidth = 1.25)+
  theme(legend.position = "none")+
  labs(title = "Distribution of Ratings by Condition",
       x = "Rating")

# ## technical scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_technical= mean(technical_scale))
technical <- ggplot(analysis, aes(x = technical_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$technical_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$technical_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$technical_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$technical_scale), color = m_nt)+
  labs(title = "Technical Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22))

# ## leadership scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_leadership= mean(leadership_scale))
leadership <- ggplot(analysis, aes(x = leadership_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$leadership_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$leadership_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$leadership_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$leadership_scale), color = m_nt)+
  labs(title = "Leadership Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22), axis.text.y=element_blank())

# ## likeable scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_likeable = mean(likeable_scale))
likeable <- ggplot(analysis, aes(x = likeable_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$likeable_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$likeable_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$likeable_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$likeable_scale), color = m_nt)+
  labs(title = "Likeable Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22))

# ## learner scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_learner = mean(learner_scale))
learner <- ggplot(analysis, aes(x = learner_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$learner_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$learner_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$learner_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$learner_scale), color = m_nt)+
  labs(title = "Learner Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22), axis.text.y=element_blank())

# ## education scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_education = mean(education_scale))
education <- ggplot(analysis, aes(x = education_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$education_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$education_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$education_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$education_scale), color = m_nt)+
  labs(title = "Education Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22))

# ## experience scale
# analysis %>%
#   group_by(Condition) %>% 
#   summarise(mean_experience= mean(experience_scale))
experience <- ggplot(analysis, aes(x = experience_scale, y = Condition))+
  geom_jitter(aes(color = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Traditional")$experience_scale), color = w_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Traditional")$experience_scale), color = m_t)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Woman_Nontraditional")$experience_scale), color = w_nt)+
  geom_vline(xintercept = mean(subset(analysis, Condition == "Man_Nontraditional")$experience_scale), color = m_nt)+
  labs(title = "Experience Scale Ratings",
       x = "Rating",
       y = "Condition")+
  theme(legend.position = "none", plot.title = element_text(size=22), axis.text.y=element_blank())

technical

leadership

likeable

learner

education

experience

Testing

d <- data.table(analysis)

No Covariates - Baseline Model

## anova testing
summary(d[, aov(rating ~ Condition)])
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## Condition     3   85.4  28.453   9.662 2.77e-06 ***
## Residuals   941 2771.2   2.945                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## follow-up t-tests, holm correction
d[, pairwise.t.test(rating, Condition, p.adjust.method = "bonferroni")]
## 
##  Pairwise comparisons using t tests with pooled SD 
## 
## data:  rating and Condition 
## 
##                      Man_Traditional Man_Nontraditional Woman_Nontraditional
## Man_Nontraditional   0.033           -                  -                   
## Woman_Nontraditional 0.070           1.000              -                   
## Woman_Traditional    0.279           2.1e-05            7.2e-05             
## 
## P value adjustment method: bonferroni
## linear model
m0 <- d[, lm(rating ~ Condition)]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m0)

bptest(m0)
## 
##  studentized Breusch-Pagan test
## 
## data:  m0
## BP = 20.076, df = 3, p-value = 0.0001637
m0$vcovHC_ <- vcovHC(m0)
coefs_conditions <- coeftest(m0, vcov. = m0$vcovHC_)
coefs_conditions
## 
## t test of coefficients:
## 
##                                Estimate Std. Error t value  Pr(>|t|)    
## (Intercept)                    7.604938   0.094417 80.5462 < 2.2e-16 ***
## ConditionMan_Nontraditional   -0.426644   0.155866 -2.7373  0.006312 ** 
## ConditionWoman_Nontraditional -0.394194   0.149263 -2.6409  0.008405 ** 
## ConditionWoman_Traditional     0.325755   0.142221  2.2905  0.022214 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_conditions <- coefci(m0, vcov. = m0$vcovHC_)
ci_conditions
##                                     2.5 %     97.5 %
## (Intercept)                    7.41964581  7.7902307
## ConditionMan_Nontraditional   -0.73252792 -0.1207595
## ConditionWoman_Nontraditional -0.68712226 -0.1012667
## ConditionWoman_Traditional     0.04664698  0.6048626

Based on the previous tests, we can detect that there are significant differences between conditions. This result is shown in the ANOVA test, for which post hoc testing indicates differences between the Woman_Traditional condition and the conditions Man_Nontraditional and Woman_Nontraditional. We follow this testing with linear models to more clearly capture the quantitative differences between ratings.

Specifically, the baseline candidate received a rating, on average of 7.6 (7.42, 7.79). In comparison, men with a nontraditional education were rated lower, by an average of -0.43 (-0.73, -0.12). Women with a nontraditional education were also reated lower than men with a traditional education, by an average of -0.39 (-0.69, -0.1). Finally, women with a traditional education were actually rated higher than men with a traditional education, by an average of 0.33 (0.05, 0.6).

Applicant Attributes

The previous analysis focused specifically on the conditions shown. we are also interested in the qualities of these conditions, such as the applicant_gender & applicant_education variables. This will give us a clearer statistical understanding of the input of each quality of the applicant. At this point forward, we use linear models, rather than ANOVA and t-testing. This is to make the content more consistent with the techniques learned in the course.

m1 <- d[gender == "Man" | gender == "Woman", lm(rating ~ applicant_gender * applicant_education)]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m1)

bptest(m1)
## 
##  studentized Breusch-Pagan test
## 
## data:  m1
## BP = 20.086, df = 3, p-value = 0.0001629
m1$vcovHC_ <- vcovHC(m1)
coefs_applicants <- coeftest(m1, vcov. = m1$vcovHC_)
coefs_applicants
## 
## t test of coefficients:
## 
##                                                   Estimate Std. Error t value
## (Intercept)                                       7.604938   0.094417 80.5462
## applicant_genderwoman                             0.323996   0.143717  2.2544
## applicant_educationnontrad                       -0.447458   0.157028 -2.8495
## applicant_genderwoman:applicant_educationnontrad -0.422917   0.225062 -1.8791
##                                                   Pr(>|t|)    
## (Intercept)                                      < 2.2e-16 ***
## applicant_genderwoman                             0.024408 *  
## applicant_educationnontrad                        0.004477 ** 
## applicant_genderwoman:applicant_educationnontrad  0.060548 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_applicants <- coefci(m1, vcov. = m1$vcovHC_)
ci_applicants
##                                                        2.5 %      97.5 %
## (Intercept)                                       7.41963822  7.79023832
## applicant_genderwoman                             0.04194096  0.60605052
## applicant_educationnontrad                       -0.75563560 -0.13928031
## applicant_genderwoman:applicant_educationnontrad -0.86461727  0.01878228

In this case, we observe a significant effect of gender overall, but in the opposite direction which we expected. Women, on average, receive a higher rating than men (0.3239957 higher, p = 0.0244077). We also see a slight effect of education (p = 0.0044767). Specifically, the applicants with a nontraditional education background are rated -0.447458 lower than those with traditional educations. There is no interaction effect observed (p = 0.0605475).

Add Risk Aversion

m2 <- d[gender == "Man" | gender == "Woman", lm(rating ~ applicant_gender * applicant_education + risk)]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m2)

bptest(m2)
## 
##  studentized Breusch-Pagan test
## 
## data:  m2
## BP = 24.62, df = 4, p-value = 5.999e-05
m2$vcovHC_ <- vcovHC(m2)
coefs_risk <- coeftest(m2, vcov. = m2$vcovHC_)
coefs_risk
## 
## t test of coefficients:
## 
##                                                   Estimate Std. Error t value
## (Intercept)                                       7.822693   0.328654 23.8022
## applicant_genderwoman                             0.322789   0.143967  2.2421
## applicant_educationnontrad                       -0.448411   0.157228 -2.8520
## risk                                             -0.049499   0.070949 -0.6977
## applicant_genderwoman:applicant_educationnontrad -0.409412   0.226607 -1.8067
##                                                   Pr(>|t|)    
## (Intercept)                                      < 2.2e-16 ***
## applicant_genderwoman                             0.025195 *  
## applicant_educationnontrad                        0.004443 ** 
## risk                                              0.485563    
## applicant_genderwoman:applicant_educationnontrad  0.071138 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_risk <- coefci(m2, vcov. = m2$vcovHC_)
ci_risk
##                                                        2.5 %      97.5 %
## (Intercept)                                       7.17768578  8.46770028
## applicant_genderwoman                             0.04024293  0.60533414
## applicant_educationnontrad                       -0.75698235 -0.13983984
## risk                                             -0.18874190  0.08974395
## applicant_genderwoman:applicant_educationnontrad -0.85414388  0.03532005

We add risk aversion scores to the model to capture individual differences in regards to the amount of risk one may be confortable taking on. It does not change the estimations from the previous model.

Add Participant Gender

m3 <- d[, lm(rating ~ applicant_gender * applicant_education + risk + applicant_gender * factor(gender, levels = c("Man", "Woman")))]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m3)

bptest(m3)
## 
##  studentized Breusch-Pagan test
## 
## data:  m3
## BP = 29.243, df = 6, p-value = 5.472e-05
m3$vcovHC_ <- vcovHC(m3)
coefs_gender <- coeftest(m3, vcov. = m3$vcovHC_)
coefs_gender
## 
## t test of coefficients:
## 
##                                                                        Estimate
## (Intercept)                                                            7.708639
## applicant_genderwoman                                                  0.442589
## applicant_educationnontrad                                            -0.446486
## risk                                                                  -0.026661
## factor(gender, levels = c("Man", "Woman"))Woman                        0.056924
## applicant_genderwoman:applicant_educationnontrad                      -0.425120
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -0.490556
##                                                                       Std. Error
## (Intercept)                                                             0.331472
## applicant_genderwoman                                                   0.154948
## applicant_educationnontrad                                              0.156795
## risk                                                                    0.071787
## factor(gender, levels = c("Man", "Woman"))Woman                         0.182739
## applicant_genderwoman:applicant_educationnontrad                        0.227016
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman   0.284163
##                                                                       t value
## (Intercept)                                                           23.2557
## applicant_genderwoman                                                  2.8564
## applicant_educationnontrad                                            -2.8476
## risk                                                                  -0.3714
## factor(gender, levels = c("Man", "Woman"))Woman                        0.3115
## applicant_genderwoman:applicant_educationnontrad                      -1.8726
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -1.7263
##                                                                        Pr(>|t|)
## (Intercept)                                                           < 2.2e-16
## applicant_genderwoman                                                  0.004383
## applicant_educationnontrad                                             0.004505
## risk                                                                   0.710431
## factor(gender, levels = c("Man", "Woman"))Woman                        0.755489
## applicant_genderwoman:applicant_educationnontrad                       0.061438
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman  0.084630
##                                                                          
## (Intercept)                                                           ***
## applicant_genderwoman                                                 ** 
## applicant_educationnontrad                                            ** 
## risk                                                                     
## factor(gender, levels = c("Man", "Woman"))Woman                          
## applicant_genderwoman:applicant_educationnontrad                      .  
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_gender <- coefci(m3, vcov. = m3$vcovHC_)
ci_gender
##                                                                            2.5 %
## (Intercept)                                                            7.0580986
## applicant_genderwoman                                                  0.1384908
## applicant_educationnontrad                                            -0.7542085
## risk                                                                  -0.1675483
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.3017156
## applicant_genderwoman:applicant_educationnontrad                      -0.8706555
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -1.0482485
##                                                                            97.5 %
## (Intercept)                                                            8.35917895
## applicant_genderwoman                                                  0.74668696
## applicant_educationnontrad                                            -0.13876451
## risk                                                                   0.11422594
## factor(gender, levels = c("Man", "Woman"))Woman                        0.41556348
## applicant_genderwoman:applicant_educationnontrad                       0.02041629
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman  0.06713614

Add Company Size

m4 <- d[, lm(rating ~ applicant_gender * applicant_education + risk + 
               applicant_gender * factor(gender, levels = c("Man", "Woman"))+
               factor(company_size))]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m4)

bptest(m4)
## 
##  studentized Breusch-Pagan test
## 
## data:  m4
## BP = 48.039, df = 10, p-value = 6.106e-07
m4$vcovHC_ <- vcovHC(m4)
coefs_company <- coeftest(m4, vcov. = m4$vcovHC_)
coefs_company
## 
## t test of coefficients:
## 
##                                                                         Estimate
## (Intercept)                                                            7.8120332
## applicant_genderwoman                                                  0.4605872
## applicant_educationnontrad                                            -0.4530964
## risk                                                                  -0.0209722
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.0031159
## factor(company_size)100-500 employees                                 -0.4252463
## factor(company_size)50-100 employees                                  -0.1908751
## factor(company_size)500-1,000 employees                                0.1479917
## factor(company_size)Less than 50 employees                            -0.1296298
## applicant_genderwoman:applicant_educationnontrad                      -0.4019270
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -0.4735862
##                                                                       Std. Error
## (Intercept)                                                            0.3286516
## applicant_genderwoman                                                  0.1524847
## applicant_educationnontrad                                             0.1572225
## risk                                                                   0.0721672
## factor(gender, levels = c("Man", "Woman"))Woman                        0.1874127
## factor(company_size)100-500 employees                                  0.1596861
## factor(company_size)50-100 employees                                   0.2267440
## factor(company_size)500-1,000 employees                                0.1664959
## factor(company_size)Less than 50 employees                             0.1555929
## applicant_genderwoman:applicant_educationnontrad                       0.2307918
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman  0.2838319
##                                                                       t value
## (Intercept)                                                           23.7700
## applicant_genderwoman                                                  3.0205
## applicant_educationnontrad                                            -2.8819
## risk                                                                  -0.2906
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.0166
## factor(company_size)100-500 employees                                 -2.6630
## factor(company_size)50-100 employees                                  -0.8418
## factor(company_size)500-1,000 employees                                0.8889
## factor(company_size)Less than 50 employees                            -0.8331
## applicant_genderwoman:applicant_educationnontrad                      -1.7415
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -1.6685
##                                                                        Pr(>|t|)
## (Intercept)                                                           < 2.2e-16
## applicant_genderwoman                                                  0.002594
## applicant_educationnontrad                                             0.004047
## risk                                                                   0.771419
## factor(gender, levels = c("Man", "Woman"))Woman                        0.986739
## factor(company_size)100-500 employees                                  0.007882
## factor(company_size)50-100 employees                                   0.400118
## factor(company_size)500-1,000 employees                                0.374314
## factor(company_size)Less than 50 employees                             0.404989
## applicant_genderwoman:applicant_educationnontrad                       0.081933
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman  0.095554
##                                                                          
## (Intercept)                                                           ***
## applicant_genderwoman                                                 ** 
## applicant_educationnontrad                                            ** 
## risk                                                                     
## factor(gender, levels = c("Man", "Woman"))Woman                          
## factor(company_size)100-500 employees                                 ** 
## factor(company_size)50-100 employees                                     
## factor(company_size)500-1,000 employees                                  
## factor(company_size)Less than 50 employees                               
## applicant_genderwoman:applicant_educationnontrad                      .  
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_company <- coefci(m4, vcov. = m4$vcovHC_)
ci_company
##                                                                            2.5 %
## (Intercept)                                                            7.1670253
## applicant_genderwoman                                                  0.1613224
## applicant_educationnontrad                                            -0.7616595
## risk                                                                  -0.1626068
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.3709299
## factor(company_size)100-500 employees                                 -0.7386445
## factor(company_size)50-100 employees                                  -0.6358804
## factor(company_size)500-1,000 employees                               -0.1787712
## factor(company_size)Less than 50 employees                            -0.4349947
## applicant_genderwoman:applicant_educationnontrad                      -0.8548764
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -1.0306313
##                                                                            97.5 %
## (Intercept)                                                            8.45704101
## applicant_genderwoman                                                  0.75985193
## applicant_educationnontrad                                            -0.14453326
## risk                                                                   0.12066235
## factor(gender, levels = c("Man", "Woman"))Woman                        0.36469814
## factor(company_size)100-500 employees                                 -0.11184805
## factor(company_size)50-100 employees                                   0.25413025
## factor(company_size)500-1,000 employees                                0.47475464
## factor(company_size)Less than 50 employees                             0.17573501
## applicant_genderwoman:applicant_educationnontrad                       0.05102232
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman  0.08345903

Add Scale Measures

m5 <- d[, lm(rating ~ applicant_gender * applicant_education + risk + 
               applicant_gender * factor(gender, levels = c("Man", "Woman"))+
               factor(company_size) +
               technical_scale +
               leadership_scale +
               likeable_scale +
               learner_scale +
               education_scale +
               experience_scale)]

# test for heteroscedasticity to determine if use of robust standard errors is justified
par(mfrow = c(2, 2))
plot(m5)

bptest(m5)
## 
##  studentized Breusch-Pagan test
## 
## data:  m5
## BP = 79.681, df = 16, p-value = 1.899e-10
m5$vcovHC_ <- vcovHC(m5)
coefs_measures <- coeftest(m5, vcov. = m5$vcovHC_)
coefs_measures
## 
## t test of coefficients:
## 
##                                                                        Estimate
## (Intercept)                                                            1.833931
## applicant_genderwoman                                                  0.155441
## applicant_educationnontrad                                            -0.063456
## risk                                                                  -0.024555
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.092787
## factor(company_size)100-500 employees                                 -0.132663
## factor(company_size)50-100 employees                                  -0.264659
## factor(company_size)500-1,000 employees                                0.093538
## factor(company_size)Less than 50 employees                             0.113091
## technical_scale                                                        0.361614
## leadership_scale                                                       0.049826
## likeable_scale                                                         0.032400
## learner_scale                                                          0.060149
## education_scale                                                        0.102807
## experience_scale                                                       0.172275
## applicant_genderwoman:applicant_educationnontrad                      -0.064606
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -0.071341
##                                                                       Std. Error
## (Intercept)                                                             0.425253
## applicant_genderwoman                                                   0.120806
## applicant_educationnontrad                                              0.125803
## risk                                                                    0.056467
## factor(gender, levels = c("Man", "Woman"))Woman                         0.154783
## factor(company_size)100-500 employees                                   0.114750
## factor(company_size)50-100 employees                                    0.190844
## factor(company_size)500-1,000 employees                                 0.135162
## factor(company_size)Less than 50 employees                              0.131889
## technical_scale                                                         0.049572
## leadership_scale                                                        0.039168
## likeable_scale                                                          0.041539
## learner_scale                                                           0.042559
## education_scale                                                         0.026657
## experience_scale                                                        0.043628
## applicant_genderwoman:applicant_educationnontrad                        0.177337
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman   0.233004
##                                                                       t value
## (Intercept)                                                            4.3126
## applicant_genderwoman                                                  1.2867
## applicant_educationnontrad                                            -0.5044
## risk                                                                  -0.4348
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.5995
## factor(company_size)100-500 employees                                 -1.1561
## factor(company_size)50-100 employees                                  -1.3868
## factor(company_size)500-1,000 employees                                0.6920
## factor(company_size)Less than 50 employees                             0.8575
## technical_scale                                                        7.2947
## leadership_scale                                                       1.2721
## likeable_scale                                                         0.7800
## learner_scale                                                          1.4133
## education_scale                                                        3.8567
## experience_scale                                                       3.9488
## applicant_genderwoman:applicant_educationnontrad                      -0.3643
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -0.3062
##                                                                        Pr(>|t|)
## (Intercept)                                                           1.792e-05
## applicant_genderwoman                                                 0.1985308
## applicant_educationnontrad                                            0.6140999
## risk                                                                  0.6637773
## factor(gender, levels = c("Man", "Woman"))Woman                       0.5490117
## factor(company_size)100-500 employees                                 0.2479452
## factor(company_size)50-100 employees                                  0.1658517
## factor(company_size)500-1,000 employees                               0.4890901
## factor(company_size)Less than 50 employees                            0.3914128
## technical_scale                                                       6.572e-13
## leadership_scale                                                      0.2036648
## likeable_scale                                                        0.4356137
## learner_scale                                                         0.1579087
## education_scale                                                       0.0001231
## experience_scale                                                      8.470e-05
## applicant_genderwoman:applicant_educationnontrad                      0.7157116
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman 0.7595400
##                                                                          
## (Intercept)                                                           ***
## applicant_genderwoman                                                    
## applicant_educationnontrad                                               
## risk                                                                     
## factor(gender, levels = c("Man", "Woman"))Woman                          
## factor(company_size)100-500 employees                                    
## factor(company_size)50-100 employees                                     
## factor(company_size)500-1,000 employees                                  
## factor(company_size)Less than 50 employees                               
## technical_scale                                                       ***
## leadership_scale                                                         
## likeable_scale                                                           
## learner_scale                                                            
## education_scale                                                       ***
## experience_scale                                                      ***
## applicant_genderwoman:applicant_educationnontrad                         
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ci_measures <- coefci(m5, vcov. = m5$vcovHC_)
ci_measures
##                                                                             2.5 %
## (Intercept)                                                            0.99932635
## applicant_genderwoman                                                 -0.08165403
## applicant_educationnontrad                                            -0.31035706
## risk                                                                  -0.13537704
## factor(gender, levels = c("Man", "Woman"))Woman                       -0.39656474
## factor(company_size)100-500 employees                                 -0.35787097
## factor(company_size)50-100 employees                                  -0.63920931
## factor(company_size)500-1,000 employees                               -0.17173197
## factor(company_size)Less than 50 employees                            -0.14575533
## technical_scale                                                        0.26432297
## leadership_scale                                                      -0.02704551
## likeable_scale                                                        -0.04912609
## learner_scale                                                         -0.02337718
## education_scale                                                        0.05049045
## experience_scale                                                       0.08665097
## applicant_genderwoman:applicant_educationnontrad                      -0.41264925
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman -0.52863623
##                                                                           97.5 %
## (Intercept)                                                           2.66853650
## applicant_genderwoman                                                 0.39253666
## applicant_educationnontrad                                            0.18344574
## risk                                                                  0.08626794
## factor(gender, levels = c("Man", "Woman"))Woman                       0.21099014
## factor(company_size)100-500 employees                                 0.09254566
## factor(company_size)50-100 employees                                  0.10989213
## factor(company_size)500-1,000 employees                               0.35880720
## factor(company_size)Less than 50 employees                            0.37193781
## technical_scale                                                       0.45890547
## leadership_scale                                                      0.12669695
## likeable_scale                                                        0.11392520
## learner_scale                                                         0.14367580
## education_scale                                                       0.15512297
## experience_scale                                                      0.25789904
## applicant_genderwoman:applicant_educationnontrad                      0.28343742
## applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman 0.38595473

Model Comparison

anova(m1, m2, m3, m4, m5)
## Analysis of Variance Table
## 
## Model 1: rating ~ applicant_gender * applicant_education
## Model 2: rating ~ applicant_gender * applicant_education + risk
## Model 3: rating ~ applicant_gender * applicant_education + risk + applicant_gender * 
##     factor(gender, levels = c("Man", "Woman"))
## Model 4: rating ~ applicant_gender * applicant_education + risk + applicant_gender * 
##     factor(gender, levels = c("Man", "Woman")) + factor(company_size)
## Model 5: rating ~ applicant_gender * applicant_education + risk + applicant_gender * 
##     factor(gender, levels = c("Man", "Woman")) + factor(company_size) + 
##     technical_scale + leadership_scale + likeable_scale + learner_scale + 
##     education_scale + experience_scale
##   Res.Df    RSS Df Sum of Sq        F    Pr(>F)    
## 1    912 2677.0                                    
## 2    911 2675.4  1      1.58   0.9064 0.3413197    
## 3    909 2661.4  2     14.05   4.0260 0.0181688 *  
## 4    905 2627.6  4     33.78   4.8378 0.0007287 ***
## 5    899 1569.2  6   1058.36 101.0543 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
stargazer(
  m1, 
  m2,
  m3,
  m4,
  m5,
  type = 'html',
  se = list(sqrt(diag(m1$vcovHC_)),
            sqrt(diag(m2$vcovHC_)),
            sqrt(diag(m3$vcovHC_)),
            sqrt(diag(m4$vcovHC_)),
            sqrt(diag(m5$vcovHC_))
  ),
 # header=FALSE,
  single.row = TRUE, 
  no.space = TRUE 
)
## 
## <table style="text-align:center"><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="5"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="5" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="5">rating</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td><td>(5)</td></tr>
## <tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">applicant_genderwoman</td><td>0.324<sup>**</sup> (0.144)</td><td>0.323<sup>**</sup> (0.144)</td><td>0.443<sup>***</sup> (0.155)</td><td>0.461<sup>***</sup> (0.152)</td><td>0.155 (0.121)</td></tr>
## <tr><td style="text-align:left">applicant_educationnontrad</td><td>-0.447<sup>***</sup> (0.157)</td><td>-0.448<sup>***</sup> (0.157)</td><td>-0.446<sup>***</sup> (0.157)</td><td>-0.453<sup>***</sup> (0.157)</td><td>-0.063 (0.126)</td></tr>
## <tr><td style="text-align:left">risk</td><td></td><td>-0.049 (0.071)</td><td>-0.027 (0.072)</td><td>-0.021 (0.072)</td><td>-0.025 (0.056)</td></tr>
## <tr><td style="text-align:left">factor(gender, levels = c("Man", "Woman"))Woman</td><td></td><td></td><td>0.057 (0.183)</td><td>-0.003 (0.187)</td><td>-0.093 (0.155)</td></tr>
## <tr><td style="text-align:left">factor(company_size)100-500 employees</td><td></td><td></td><td></td><td>-0.425<sup>***</sup> (0.160)</td><td>-0.133 (0.115)</td></tr>
## <tr><td style="text-align:left">factor(company_size)50-100 employees</td><td></td><td></td><td></td><td>-0.191 (0.227)</td><td>-0.265 (0.191)</td></tr>
## <tr><td style="text-align:left">factor(company_size)500-1,000 employees</td><td></td><td></td><td></td><td>0.148 (0.166)</td><td>0.094 (0.135)</td></tr>
## <tr><td style="text-align:left">factor(company_size)Less than 50 employees</td><td></td><td></td><td></td><td>-0.130 (0.156)</td><td>0.113 (0.132)</td></tr>
## <tr><td style="text-align:left">technical_scale</td><td></td><td></td><td></td><td></td><td>0.362<sup>***</sup> (0.050)</td></tr>
## <tr><td style="text-align:left">leadership_scale</td><td></td><td></td><td></td><td></td><td>0.050 (0.039)</td></tr>
## <tr><td style="text-align:left">likeable_scale</td><td></td><td></td><td></td><td></td><td>0.032 (0.042)</td></tr>
## <tr><td style="text-align:left">learner_scale</td><td></td><td></td><td></td><td></td><td>0.060 (0.043)</td></tr>
## <tr><td style="text-align:left">education_scale</td><td></td><td></td><td></td><td></td><td>0.103<sup>***</sup> (0.027)</td></tr>
## <tr><td style="text-align:left">experience_scale</td><td></td><td></td><td></td><td></td><td>0.172<sup>***</sup> (0.044)</td></tr>
## <tr><td style="text-align:left">applicant_genderwoman:applicant_educationnontrad</td><td>-0.423<sup>*</sup> (0.225)</td><td>-0.409<sup>*</sup> (0.227)</td><td>-0.425<sup>*</sup> (0.227)</td><td>-0.402<sup>*</sup> (0.231)</td><td>-0.065 (0.177)</td></tr>
## <tr><td style="text-align:left">applicant_genderwoman:factor(gender, levels = c("Man", "Woman"))Woman</td><td></td><td></td><td>-0.491<sup>*</sup> (0.284)</td><td>-0.474<sup>*</sup> (0.284)</td><td>-0.071 (0.233)</td></tr>
## <tr><td style="text-align:left">Constant</td><td>7.605<sup>***</sup> (0.094)</td><td>7.823<sup>***</sup> (0.329)</td><td>7.709<sup>***</sup> (0.331)</td><td>7.812<sup>***</sup> (0.329)</td><td>1.834<sup>***</sup> (0.425)</td></tr>
## <tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>916</td><td>916</td><td>916</td><td>916</td><td>916</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.038</td><td>0.039</td><td>0.044</td><td>0.056</td><td>0.436</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.035</td><td>0.034</td><td>0.037</td><td>0.045</td><td>0.426</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>1.713 (df = 912)</td><td>1.714 (df = 911)</td><td>1.711 (df = 909)</td><td>1.704 (df = 905)</td><td>1.321 (df = 899)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>12.019<sup>***</sup> (df = 3; 912)</td><td>9.144<sup>***</sup> (df = 4; 911)</td><td>6.915<sup>***</sup> (df = 6; 909)</td><td>5.347<sup>***</sup> (df = 10; 905)</td><td>43.454<sup>***</sup> (df = 16; 899)</td></tr>
## <tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="5" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>

Follow-up Visualizations

ggplot(subset(analysis, gender == "Man" | gender == "Woman"), aes(y = technical_scale, x = applicant_education))+
  geom_jitter(aes(color = Condition), alpha = 0.5)+
  geom_boxplot(alpha = 0.8, aes(fill = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  scale_x_discrete(labels = c("Traditional", "Non-Traditional"))+
  labs(title = "Comparison of Technical Ratings between Conditions",
       subtitle = "Grouped by Education & Participant Gender",
       y = "Technical Scale Rating\n",
       x = "\nApplicant Education")+
  theme(legend.position = "none")+
  facet_grid(~ gender)

ggplot(subset(analysis, gender == "Man" | gender == "Woman"), aes(y = education_scale, x = applicant_education))+
  geom_jitter(aes(color = Condition), alpha = 0.5)+
  geom_boxplot(alpha = 0.8, aes(fill = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  scale_x_discrete(labels = c("Traditional", "Non-Traditional"))+
  labs(title = "Comparison of Relevant Education Ratings between Conditions",
       subtitle = "Grouped by Education & Participant Gender",
       y = "Education Scale Rating\n",
       x = "\nApplicant Education")+
  theme(legend.position = "none")+
  facet_grid(~ gender)

ggplot(subset(analysis, gender == "Man" | gender == "Woman"), aes(y = experience_scale, x = applicant_gender))+
  geom_jitter(aes(color = Condition), alpha = 0.5)+
  geom_boxplot(alpha = 0.8, aes(fill = Condition))+
  scale_fill_manual(values = color_scheme)+
  scale_color_manual(values = color_scheme)+
  scale_x_discrete(labels = c("Man", "Woman"))+
  labs(title = "Comparison of Relevant Experience Ratings between Conditions",
       subtitle = "Grouped by Gender & Participant Gender",
       y = "Experience Scale Rating\n",
       x = "\nApplicant Gender")+
  theme(legend.position = "none")+
  facet_grid(~ gender)

ggplot(subset(analysis, gender == "Man" | gender == "Woman"), aes(y = rating, x = applicant_gender))+
  geom_jitter(aes(color = gender), alpha = 0.8)+
  scale_color_manual(values = c(m_t, w_t))+
  geom_boxplot(alpha = 0.8, aes(fill = gender))+
  scale_fill_manual(values = c(m_t, w_t))+
  facet_grid(.~ gender)